//
//  BLESDK.h
//  BLESDK
//
//  Created on Desktop.
//

#import <Foundation/Foundation.h>

// 对外公开的头文件
#import "BLEManager.h"
#import "BLEDataConverter.h"

// 框架版本号
#define BLESDK_VERSION @"1.0.1"

// 错误域定义
extern NSString * const BLESDKErrorDomain;

// 错误码定义
typedef NS_ENUM(NSInteger, BLESDKErrorCode) {
    BLESDKErrorCodeBluetoothUnavailable = 1001,
    BLESDKErrorCodeBluetoothUnauthorized = 1002,
    BLESDKErrorCodeConnectionFailed = 1003,
    BLESDKErrorCodeOperationTimeout = 1004,
    BLESDKErrorCodeInvalidParameter = 1005
};

NS_ASSUME_NONNULL_BEGIN

/**
 * BLESDK主类，提供SDK初始化和配置功能
 */
@interface BLESDK : NSObject

/**
 * 获取SDK版本号
 * @return 版本号字符串
 */
+ (NSString *)version;

/**
 * 初始化SDK
 * 在应用启动时调用一次
 */
+ (void)initSDK;

/**
 * 初始化SDK并配置参数
 * @param options 配置参数字典，可包含以下键值:
 *                - "scanDuration": @(NSTimeInterval) 扫描持续时间
 *                - "autoReconnect": @(BOOL) 是否自动重连
 *                - "connectionTimeout": @(NSTimeInterval) 连接超时时间
 */
+ (void)initSDKWithOptions:(nullable NSDictionary *)options;

/**
 * 启用调试日志
 * @param enabled 是否启用
 */
+ (void)setDebugLogEnabled:(BOOL)enabled;

/**
 * 设置日志级别
 * @param level 日志级别 (0:关闭, 1:错误, 2:警告, 3:信息, 4:调试)
 */
+ (void)setLogLevel:(NSInteger)level;

/**
 * 注销SDK，释放资源
 * 应用退出前调用
 */
+ (void)deinitSDK;

@end

NS_ASSUME_NONNULL_END 